package org.abbett.eskine.dao;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import org.abbett.eskine.entity.User;

public interface UserDao {
    /**
     * The "Create" semantics of "CRUD"
     */
    public void create(User user);

    /**
     * Create a new instance of this object
     */
    public User newInstance();

    /**
     * The "Update" semantics of "CRUD"
     */
    public void update(User user);
    

    /**
     * Find by Primary key
     * 
     * The "read" operation of CRUD
     */
    public User findByPrimaryKey(String key);

    public User findByUsernameAndPassword(String username, String password);

    /**
     * The "Create" or "Update" semantics of "CRUD"
     */
    public void createOrUpdate(User user);

    /**
     * The "delete" semantics of "CRUD"
     */
    public void delete(User user);


    /**
     * All Users. 
        				All users.
        			
     * 
     * The "read" operation of CRUD
     */
    public List<User> findUsers(Map<String, Object> params);
}// clickframes::version=4085671058::clickframes